ZSNES v1.51 Documentation

================================
    N a v i g a t i o n
================================

    * Index    [Index.txt]

    * Readme    [Readme.txt]

    * GUI    [GUI.txt]

    * Netplay    [Netplay.txt]

    * Advanced Usage    [Advanced.txt]
        1. Movie Dumping
        2. Configuration Files
        3. Debugger
        4. KitchenSync
        5. Command-Line

    * Games    [Games.txt]

    * FAQ    [FAQ.txt]

    - - - - - - - - - - - - - - - - - -

    * Getting Support    [Support.txt]

    * History    [History.txt]

    * About    [About.txt]

    * License    [License.txt]

    - - - - - - - - - - - - - - - - - -

    * NSRT Guide:    [http://zsnes-docs.sf.net/nsrt]

    * ZSNES Home Page:  [ZSNES.com]


================================================================================
~                         A d v a n c e d    U s a g e
================================================================================

This page documents the advanced features of ZSNES, probably not useful for most
end users.


............................................................
  1.                   Movie Dumping
............................................................

Please note that ZSNES does not support real-time video encoding. ZSNES only
encodes existing ZMV (ZSNES movie) files. Refer to the GUI page [GUI.txt] for
instructions on recording movies.

All instructions in this section assume that you are using the default settings
of the zmovie.cfg file. If you are smart enough to edit zmovie.cfg, you had
better be smart enough to dump movies with whatever new settings you've created.

You can dump video output alone, audio output alone, both at the same time (to
separate files), or both to the same file (merged). If you choose to dump audio
output, you can choose to dump that audio output uncompressed or compressed to
MP3. Both uncompressed and compressed audio can be merged with the video.

- - - - - - - - - - - -
 About Video Encoding
- - - - - - - - - - - -

Video encoding requires MEncoder [http://www.mplayerhq.hu].

- - - - - - - - - - - -
 About Audio Encoding
- - - - - - - - - - - -

Audio encoding requires LAME [http://lame.sourceforge.net]. Currently, Windows
users *must* use this fixed LAME build [http://nsrt.edgeemu.com/lame.zip] due to
a bug in the official versions.

You have a choice of dumping audio either in uncompressed PCM format with WAV
header, or compressed as MP3. ZSNES uses LAME [http://lame.sourceforge.net] for
MP3, so you can expect high-quality audio, given the bit rate.

When dumping audio to a separate file (not merged with video), audio compressed
to MP3 will be about 6% of the size of the same uncompressed PCM audio.

- - - - - - - - -
 Dumping a Movie
- - - - - - - - -

  1. Place your MEncoder (mencoder.exe) and LAME (lame.exe) binaries in the same
     directory as ZSNES. Alternatively, configure your PATH environment variable
     to include the directories where MEncoder and LAME are installed.
  2. Start ZSNES and load a game.
  3. Open the Movie Options dialog. (Misc Menu->Movie Opt).
  4. Make sure to select the correct movie slot, depending on which movie slot
     you used to record a ZMV.
  5. Select the Dumping tab, and configure the Video Options and Audio Options
     to your liking [GUI.txt].
  6. Hit the Start button.
  7. ZSNES will then exit the GUI and start playing back the previously recorded
     movie. If you chose to encode the video and/or audio output, you will see a
     console window appear, showing the progress of encoding. Don't worry if
     ZSNES slows down while playing back the movie; it needs to do this because
     the encoding process takes a lot of processor time.
  8. ZSNES will indicate when the movie has finished playback (and encoding).
     You can now look in your ZSNES directory for the newly created file(s).

Note: ZSNES does not create an uncompressed temporary file and then encode it.
  Instead, the output stream is directly encoded. The only output files will be
  the finished, compressed files. Because ZSNES must encode the output stream as
  it is generated, ZSNES may delay the output of new frames of video/audio to
  give more time to MEncoder/LAME to compress the current frame. This means that
  you should *not* worry if you see the playback of your movie slow down while
  ZSNES is dumping it. The dumped file(s) will play back at full speed!


............................................................
  2.                Configuration Files
............................................................

Every time you run ZSNES, it checks to see if these files are present in the
same directory as the ZSNES executable. If they are not, ZSNES will create them
with their default values. Thus, if you are having weird problems with ZSNES,
try deleting these files.

If there are any missing or invalid lines in zsnes*.cfg, ZSNES will insert or
replace the lines with their default values.

- - - - - - -
 zsnes*.cfg
- - - - - - -

Almost every option available in ZSNES can be configured in this file. If there
is something you don't understand in this file, please refrain from changing it,
and instead set the option from within the ZSNES GUI [GUI.txt].

The last letter of the filename is different for each port.
Windows: zsnesw.cfg    SDL: zsnesl.cfg    DOS: zsnes.cfg.

- - - - - - -
 zmovie.cfg
- - - - - - -

This file contains movie-dumping configuration information.

You can edit this file to make ZSNES use something other than MEncoder or LAME,
or to tweak options. Read the MEncoder and LAME manuals to see what options you
can tweak. If you choose other applications, they must support stream input via
stdin and raw video (in the case of video encoding). Refer to the appropriate
documentation for more information.

Unfortunately, you're on your own if wish to play with this.

- - - - - - -
  zfont.txt
- - - - - - -

This file contains the font data for the ZSNES GUI. You can edit this file to
customize the font.

  * Comments are preceded by a ; and can be up to 99 characters in length.
      - In the default file, each comment precedes the character it's labeling.
  * Each letter is represented by a block of five rows, each containing 8 bits.
    Only the first five columns of bits are used for font data; ZSNES uses a 5x5
    font. The last three columns of bits should always be zeros.
      - There are characters for English, Hiragana, and Katakana scripts.
  * In case it isn't obvious, a 1 means the pixel is on in that location. A 0
    means it's off. If you view zfont.txt, you should be able to figure it out.
  * The file terminates on the EOF+newline character or the last character
    (whichever comes first).

The absolute ordering of each and every line in this file is *important*. If
you're missing a single line, things might start messing up. Just so you know,
the last line of data should be on line 846, followed by the EOF character on
line 847.

If you mess something up, just delete zfont.txt, and ZSNES will re-generate it
as normal.


............................................................
  3.                      Debugger
............................................................

The debugger, now available in all ports, is enabled only when you enter ZSNES
with a -d (If you are using the DOS port, just type "zsnes -d" at the
commandline. Win port users should add a "-d" after their ZSNES shortcut
target). Loading a ROM via a command line will start ZSNES in debugger mode;
otherwise press F1 to reach it.

Average users, however, should have no need to use the debugger.

- - - - - - - - - - - - - - - -
 .   . Debugger  .  Keys .   .
- - - - - - - - - - - - - - - -

|Key|  |Function|
- - - - - - - - -
 1      Enable/Disable SPC700 display
 2      Enable/Disable 65816 display
 T      Trace (in 65816 opcodes)
 B      65816 break point
 S      SPC break point
 C      Clear counter
 M      65816 modify
 A      SPC modify
 D      Debug dump (SPC/DSPRAM dump only)
 W      Break at signal (used only by the programmers)
 F1     Switch between debugger input and game input
 F2     Save state
 F4     Load state
 Esc    Exit entire program


............................................................
  4.            KitchenSync (Win port only)
............................................................

This makes NTSC games (60Hz) run at 120Hz, and PAL games (50Hz) run at 100Hz.
To enable it, just start ZSNESw with the -ks switch. Alternatively, you can
create a shortcut to ZSNESw that starts with this switch enabled, every time.
First create a shortcut to ZSNESw in Windows. Next, right-click on the shortcut
and choose Properties. Then, put the cursor right after the quotation marks in
the Target box, press the space bar, and type -ks. Finally, click OK. If ZSNESw
crashes or refuses to start after enabling this, your monitor does not support
the 100/120 Hz refresh rate.

If your monitor supports 100Hz and not 120Hz, you can instead use the -kp switch
for PAL only. This way, you will not have to disable the -ks switch every time
you wish to play an NTSC game.


............................................................
  5.               Command-Line Arguments
............................................................

ZSNES supports execution arguments via the command line. More detailed
descriptions of how to use the arguments with each port is forthcoming.

Further detail of each argument's effect is given in [GUI.txt] for the
corresponding GUI option, if one exists.

  Usage : zsnes* [-d,-f #, ... ] filename.sfc
Example : zsnes* -s -r 2 game.sfc

*Fill in the appropriate letter for your port when entering this into the
command line.


- - - - - - - - - - - - - - - -
 . .  Universal  Switches  . .
- - - - - - - - - - - - - - - -
Argument|Sub-Arg.|Description
= = = = = = = = = = = = = = =
-1 #/-2 #         Select Player 1/2 Input
          0         None
          1         Keyboard
-d                Start with debugger enabled
-dd               Disable sound SPC700/DSP emulation, which also disables sound
                  output
-dh               Disable ROM-specific hacks
-ds               Disable sound output
-f #   [0...9]    Enable fixed frame rate
-g #   [0...15]   Specify gamma correction value
-h                Force HiROM
-j                Disable Mouse (Automatically turns off right mouse click)
-k #   [0...100]  Set Volume Level
-l                Force LoROM
-m                Disable GUI (Must specify ROM filename)
-mc               Exit ZSNES when closing a movie (use with -zm)
-md #             Dump video (use with -zm)
          1         Raw
          2         FFV1
          3         x264
          4         XviD
          5         Custom
-ml #             Define movie dump length in amount of frames (use with -md)
-n #              Enable scanlines (when available)
          0         None
          1         Full
          2         25%
          3         50%
-o                Disable MMX support
-p #  [50...150]  Percentage of instructions to execute
-r #              Set sound sampling rate
          0         8000Hz
          1         11025Hz
          2         22050Hz
          3         44100Hz
          4         16000Hz
          5         32000Hz
          6         48000Hz
-s                Enable sound output and enable SPC700/DSP emulation
-sa               Show all extensions in GUI (*.*)
-t                Force NTSC timing
-u                Force PAL timing
-v8               Grayscale mode
-y                Enable Interpolation graphics filter
-z                Disable stereo sound
-zm #  [0...9]    Auto load specified movie slot on startup
-zs #  [0...99]   Auto load specified save state slot on startup


- - - - - - - - - - - - - - - -
 . . Windows-only Switches . .
- - - - - - - - - - - - - - - -
From the Windows NT command-line, you can use the following command to view the
accepted command-line input for a given ZSNES binary: "zsnesw -? | more".
Typing "zsnesw -?" does not work.

Users of any flavor of Windows can use the following command to output to a file
the same information returned from the command above: "zsnesw -? > commands.txt"

Argument|Sub-Arg.|Description
= = = = = = = = = = = = = = =
-3                Enable triple buffering (disables VSync)
-6 #  [50...180]  Force a user-specified refresh rate for fullscreen modes
-js # [0...32767] Set joystick sensitivity
-kp               Enable the KitchenSync for PAL only (100Hz)
-ks               Enable the KitchenSync for NTSC and PAL (120Hz/100Hz)
-v #              Select Video Mode:
          0         256x224 R WIN
          1         256x224 R FULL
          2         512x448 R WIN
          3         512x448 DR WIN
          4         640x480 S WIN
          5         640x480 DS WIN
          6         640x480 DR FULL
          7         640x480 DS FULL
          8         640x480 S FULL
          9         768x672 R WIN
          10        768x672 DR WIN
          11        800x600 S WIN
          12        800x600 DS WIN
          13        800x600 S FULL
          14        800x600 DR FULL
          15        800x600 DS FULL
          16        1024x768 S WIN
          17        1024x768 DS WIN
          18        1024x768 S FULL
          19        1024x768 DR FULL
          20        1024x768 DS FULL
          21        1024x896 R WIN
          22        1024x896 DR WIN
          23        1280x960 S WIN
          24        1280x960 DS WIN
          25        1280x960 S FULL
          26        1280x960 DR FULL
          27        1280x960 DS FULL
          28        1280x1024 S WIN
          29        1280x1024 DS WIN
          30        1280x1024 S FULL
          31        1280x1024 DR FULL
          32        1280x1024 DS FULL
          33        1600x1200 S WIN
          34        1600x1200 DS WIN
          35        1600x1200 DR FULL
          36        1600x1200 DS FULL
          37        1600x1200 S FULL
          38        CUSTOM D WIN
          39        CUSTOM DS FULL
          40        CUSTOM WIN
          41        CUSTOM S FULL
          42        CUSTOM DR FULL
-w                Enable VSync (disables triple buffering)


- - - - - - - - - - - - - - - -
 . . . SDL-only Switches . . .
- - - - - - - - - - - - - - - -
Argument|Sub-Arg.|Description
= = = = = = = = = = = = = = =
-ad <>            Audio Driver (note you may not have all of these):
          auto      Select a driver automatically - uses SDL without libao
          null      No sound, only available with libao
          oss       Open Sound System, only available with libao on UNIX systems
                    with OSS
          alsa      Advanced Linux Sound Architecture, only available with libao
                    on Linux systems with ALSA
          alsa09    Advanced Linux Sound Architecture, only available with libao
                    on Linux systems with ALSA
          polyp     polypaudio (next generation GNOME sound server), only
                    available with libao and new versions of GNOME
          esd       ESounD or Enlightened Sound Daemon, only available with
                    libao and ESD installed
          sun       Sun Microsystem's audio system, only available with libao
                    and Solaris or certain BSD systems
          irix      IRIX audio system, only available with libao and IRIX
                    systems
          nas       Network Audio System, only available with libao and NAS
                    installed
          arts      Analog RealTime Synthesizer sound, only available with libao
                    on systems with aRts (KDE)
          sdl       Simple DirectMedia Layer sound
-js # [0...32767] Set joystick sensitivity
-v #              Select Video Mode:
          0         256x224 R WIN
          1         256x224 R FULL
          2         512x448 DR WIN
          3         512x448 DR FULL
          4         640x480 DR FULL
          5         256x224 OR WIN
          6         512x448 ODR WIN
          7         640x480 ODS FULL
          8         640x480 ODS WIN
          9         640x560 ODR WIN
          10        768x672 ODR WIN
          11        800x600 ODS FULL
          12        800x600 ODS WIN
          13        896x784 ODR WIN
          14        1024x768 ODS FULL
          15        1024x768 ODS WIN
          16        1024x896 ODR WIN
          17        1280x960 ODS FULL
          18        1280x1024 ODS FULL
          19        1600x1200 ODS FULL
          20        VARIABLE ODR WIN
          21        VARIABLE ODS WIN
          22        CUSTOM OD FULL


- - - - - - - - - - - - - - - -
 . . . DOS-only Switches . . .
- - - - - - - - - - - - - - - -
Argument|Sub-Arg.|Description
= = = = = = = = = = = = = = =
-0                Force black background in 8-bit modes
-1 #/-2 #         Select Player 1/2 Input:
          2         2 Button
          3         4 Button
          4         6 Button
          5         8 Button
          6         Sidewinder #1
          7         Sidewinder #2
          8         Sidewinder #3
          9         Sidewinder #4
          10        Gamepad Pro #0
          11        Gamepad Pro #1
          12        LPT1 #1
          13        LPT1 #2
          14        LPT1 #3
          15        LPT1 #4
          16        LPT1 #5
-3                Enable triple buffering (disables VSync)
-8                Force 8-bit sound
-c                Enable full/wide screen (when available)
-cc               Enable small screen (when available)
-sp               Report sound detection information
-v #              Select Video Mode:
          0         256x224x8B (MODEQ)
          1         256x240x8B (MODEQ)
          2         256x256x8B (MODEQ)
          3         320x224x8B (MODEX)
          4         320x240x8B (MODEX)
          5         320x256x8B (MODEX)
          6         640x480x16B (VESA1)*
          7         320x240x8B (VESA2)
          8         320x240x16B (VESA2)
          9         320x480x8B (VESA2)
          10        320x480x16B (VESA2)
          11        512x384x8B (VESA2)
          12        512x384x16B (VESA2)
          13        640x400x8B (VESA2)
          14        640x400x16B (VESA2)
          15        640x480x8B (VESA2)
          16        640x480x16B (VESA2)
          17        800x600x8B (VESA2)
          18        800x600x16B (VESA2)
-w                Enable VSync (disables triple buffering)

*The 640x480x16B (VESA1) video mode is compatible with many video cards, but can
  also be very slow. We recommend that you use a VESA2 mode if your video card
  supports it. Please see the system requirements for more information
  [Readme.txt].


. . . . . . . . . . . . . . . .
This documentation is best viewed in a fixed-width font such as "Courier New".

Copyright (C) ZSNES Team & ZSNES Documentation Team [License.txt]
